home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 2 / LSD and 17bit Compendium Deluxe - Volume II.iso / a / prog / asmsrc / lsdsup3.lha / music.s < prev    next >
Encoding:
Text File  |  1989-08-12  |  35.8 KB  |  2,057 lines

  1.  
  2.      Section Copperlist,code_C
  3.  
  4.     opt    c-,o-
  5.  
  6.     move.w    #0,divequal
  7.  
  8.     move.l  4.w,a6        ; exec lib
  9.     jsr    -132(a6)    ; forbid
  10.  
  11.     move.l    4.w,a6
  12.     move.l    #200*1000,d0
  13.     move.l    #$10001,d1        ; public
  14.     jsr    -198(a6)
  15.     move.l    d0,unpackspc
  16.     
  17.     lea    dlib,a1
  18.     moveq    #0,d0
  19.     move.l    4.w,a6
  20.     jsr    -$228(a6)
  21.     tst    d0
  22.     beq    error
  23.     move.l    D0,dos        ; store address of dos lib
  24.  
  25.     lea    glib,a1
  26.     moveq    #0,d0
  27.     move.l    4.w,a6
  28.     jsr    -$228(a6)    ; open lib
  29.     tst    d0
  30.     beq    error
  31.     move.l    D0,graphics    ; store address of graphics lib
  32.     
  33.     move.l    #40*55,d1
  34.     move.l    #logo+64,d0    ; store address of bitplane0
  35.     move.w    d0,bitplane0_lo    ; into the copper list
  36.     swap    d0
  37.     move.w    d0,bitplane0_hi
  38.     swap    d0
  39.     add.l    d1,d0
  40.     move.w    d0,bitplane1_lo
  41.     swap    d0
  42.     move.w    d0,bitplane1_hi
  43.     swap    d0
  44.     add.l    d1,d0
  45.     move.w    d0,bitplane2_lo
  46.     swap    d0
  47.     move.w    d0,bitplane2_hi
  48.     swap    d0
  49.     add.l    d1,d0
  50.     move.w    d0,bitplane3_lo
  51.     swap    d0
  52.     move.w    d0,bitplane3_hi
  53.     swap    d0
  54.     add.l    d1,d0
  55.     move.w    d0,bitplane4_lo
  56.     swap    d0
  57.     move.w    d0,bitplane4_hi
  58.     
  59.     move.l    #99*80,d1
  60.     move.l    #Scrollpic+32,d0    ; store address of bitplane0
  61.     move.w    d0,mplane0_lo    ; into the copper list
  62.     swap    d0
  63.     move.w    d0,mplane0_hi
  64.     swap    d0
  65.     add.l    d1,d0
  66.     move.w    d0,mplane1_lo
  67.     swap    d0
  68.     move.w    d0,mplane1_hi
  69.     swap    d0
  70.     add.l    d1,d0
  71.     move.w    d0,mplane2_lo
  72.     swap    d0
  73.     move.w    d0,mplane2_hi
  74.     swap    d0
  75.     add.l    d1,d0
  76.     move.w    d0,mplane3_lo
  77.     swap    d0
  78.     move.w    d0,mplane3_hi
  79.     swap    d0
  80.     add.l    d1,d0
  81.     move.w    d0,mplane4_lo
  82.     swap    d0
  83.     move.w    d0,mplane4_hi
  84.  
  85.     lea    cmap1+2,a0
  86.     lea    cmap2+2,a2
  87.     lea    logo,a1
  88.     lea    frame,a3
  89.     move.w    #31,d0
  90. setup_cmap1:    
  91.     move.w    (a1)+,(a0)
  92.     move.w    (a3)+,(a2)
  93.     add.l    #4,a0
  94.     add.l    #4,a2
  95.     dbf    d0,setup_cmap1    
  96.  
  97.     lea    cmap3+2,a4
  98.     lea    scrollpic,a5
  99.     move.w    #15,d0
  100. setup_cmap2:    
  101.     move.w    (a5)+,(a4)
  102.     add.l    #4,a4
  103.     dbf    d0,setup_cmap2
  104.     
  105.     move.l  4.w,a6
  106.     move.l    #scrsize,d0
  107.     move.l    #$10002,d1
  108.     jsr    -198(a6)    ; alloc mem
  109.     
  110.     move.l    d0,screen2
  111.     move.l    d0,scr2
  112.     add.l    #scrsize/2,d0
  113.     move.l    d0,scr1
  114.  
  115.     move.l    graphics,a6
  116.     add.l    #$32,a6
  117.     move.w    #$80,$dff096        ; dma control write
  118.     move.l    (a6),old_copper        ; store the address of the
  119.     move.l    #my_copper,(a6)        ; old copperlist
  120.     move.w    #$8080,$dff096        ; dma control write
  121.     move.w    #$8010,$dff09a        ; interupt enable bits
  122.     move.l    $6c.w,old_interupt    ; store old level 3 int
  123.     move.l    #new_interupt,$6c.w    ; store my routine
  124.                     ; into level 3 int
  125.  
  126.  
  127.     bsr    show_equals
  128.  
  129.     bsr    waitmouse    
  130.  
  131. exit:    
  132.  
  133.     bsr    mt_end
  134.  
  135.     move.l    old_interupt,$6c.w    ; resore old level 3 int
  136.     move.l    #$10,$dff09a         ; Disable Level 3 Interupt
  137.     move.l    graphics,a6
  138.     add.l    #$32,a6
  139.     move.w    #$0080,$dff096
  140.     move.l    old_copper,(a6)        ; restore old copper list
  141.     move.w    #$8080,$dff096
  142.     move.l    graphics,a1
  143.     
  144.     move.l  4.w,a6
  145.     move.l    screen2,a1
  146.     move.l    #scrsize,d0
  147.     jsr    -210(a6)
  148.  
  149.     move.l    4.w,a6
  150.     jsr    -138(a6)        ; permit
  151.     
  152.     move.l    4.w,a6
  153.     move.l    unpackspc,a1
  154.     move.l    #200*1000,d0
  155.     jsr    -210(a6)
  156.  
  157. error:    moveq    #0,d0            ; return code=0 (ie mellow)
  158.     rts
  159.  
  160. waitmouse:
  161.  
  162.     cmp.b    #95,$bfec01
  163.     beq    do_f1
  164.  
  165.     cmp.b    #93,$bfec01
  166.     beq    do_f2
  167.  
  168.     cmp.b    #91,$bfec01
  169.     beq    do_f3
  170.  
  171.     cmp.b    #89,$bfec01
  172.     beq    do_f4
  173.  
  174.     cmp.b    #87,$bfec01
  175.     beq    do_f5
  176.  
  177.     cmp.b    #85,$bfec01
  178.     beq    do_f6
  179.  
  180.     cmp.b    #83,$bfec01
  181.     beq    do_f7
  182.  
  183.     cmp.b    #81,$bfec01
  184.     beq    do_f8
  185.  
  186.     cmp.b    #79,$bfec01
  187.     beq    do_f9
  188.  
  189.     cmp.b    #77,$bfec01
  190.     beq    do_f10
  191.  
  192.     cmp.b    #117,$bfec01
  193.     bne    waitmouse
  194.  
  195.     rts        
  196.     
  197. do_f1:    move.l    #lf1,loadme
  198.     bsr    do_loader
  199.     move.l    cheat+0,d0
  200.     bra    do_cheat
  201.     
  202. do_f2:    move.l    #lf2,loadme
  203.     bsr    do_loader
  204.     move.l    cheat+4,d0
  205.     bra    do_cheat
  206.     
  207. do_f3:    move.l    #lf3,loadme
  208.     bsr    do_loader
  209.     move.l    cheat+8,d0
  210.     bra    do_cheat
  211.     
  212. do_f4:    move.l    #lf4,loadme
  213.     bsr    do_loader
  214.     move.l    cheat+12,d0
  215.     bra    do_cheat
  216.     
  217. do_f5:    move.l    #lf5,loadme
  218.     bsr    do_loader
  219.     move.l    cheat+16,d0
  220.     bra    do_cheat
  221.     
  222. do_f6:    move.l    #lf6,loadme
  223.     bsr    do_loader
  224.     move.l    cheat+20,d0
  225.     bra    do_cheat
  226.     
  227. do_f7:    move.l    #lf7,loadme
  228.     bsr    do_loader
  229.     move.l    cheat+24,d0
  230.     bra    do_cheat
  231.         
  232. do_f8:    move.l    #lf8,loadme
  233.     bsr    do_loader
  234.     move.l    cheat+28,d0
  235.     bra    do_cheat
  236.         
  237. do_f9:    move.l    #lf9,loadme
  238.     bsr    do_loader
  239.     move.l    cheat+32,d0
  240.     bra    do_cheat
  241.         
  242. do_f10:    move.l    #lf10,loadme
  243.     bsr    do_loader
  244.     move.l    cheat+36,d0
  245.     bra    do_cheat
  246.     
  247.         even
  248. lf1:        dc.b    "df0:mod.adamski",0
  249.         even
  250. lf2:        dc.b    "df0:mod.from",0
  251.         even
  252. lf3:        dc.b    "df0:mod.hb",0
  253.         even
  254. lf4:        dc.b    "df0:mod.is",0
  255.         even
  256. lf5:        dc.b    "df0:mod.itchy",0
  257.         even
  258. lf6:        dc.b    "df0:mod.midnight-dreams",0
  259.         even
  260. lf7:        dc.b    "df0:mod.phantom",0
  261.         even
  262. lf8:        dc.b    "df0:mod.speed-dreamer",0
  263.         even
  264. lf9:        dc.b    "df0:mod.switch625",0
  265.         even
  266. lf10:        dc.b    "df0:mod.walking-in-space",0
  267.         even
  268.  
  269. loadme:        dc.l    0
  270. file:        dc.l    0
  271. counter:    dc.l    0
  272. unpackspc:    dc.l    0
  273.  
  274. maxmin:
  275.     
  276.     move.l    #-1,calc
  277.     move.l    #0,finished
  278.     move.w    #$f0f,finding
  279.     move.l    #0,maxequal
  280.     move.l    #99999,minequal
  281.  
  282.     move.l    #waste,dff000
  283.     move.l    #waste,dff0a0
  284.     move.l    #waste,dff0b0
  285.     move.l    #waste,dff0c0
  286.     move.l    #waste,dff0d0
  287.     
  288.     bsr    mt_init
  289.     bsr    mt_end
  290.         
  291. find_maxmin:
  292.     bsr    mt_music
  293.     cmp.l    #-1,finished
  294.     bne.s    find_maxmin    
  295.  
  296.     move.l    #0,calc
  297.  
  298.     move.l    #$dff000,dff000
  299.     move.l    #$dff0a0,dff0a0
  300.     move.l    #$dff0b0,dff0b0
  301.     move.l    #$dff0c0,dff0c0
  302.     move.l    #$dff0d0,dff0d0
  303.     
  304.     rts
  305.     
  306.     
  307. do_loader:
  308.     
  309.     move.l    #$19cce7a2,mt_data
  310.     bsr    mt_end
  311.     
  312. fin_equals:
  313.     clr.l    d0
  314.     or.b    equals+00,d0
  315.     or.b    equals+01,d0
  316.     or.b    equals+02,d0
  317.     or.b    equals+03,d0
  318.     or.b    equals+04,d0
  319.     or.b    equals+05,d0
  320.     or.b    equals+06,d0
  321.     or.b    equals+07,d0
  322.     or.b    equals+08,d0
  323.     or.b    equals+09,d0
  324.     or.b    equals+10,d0
  325.     or.b    equals+11,d0
  326.     or.b    equals+12,d0
  327.     or.b    equals+13,d0
  328.     cmp.b    #0,d0
  329.     bgt.s    fin_equals
  330.  
  331.     move.l    #1,use_equals
  332.  
  333.     bsr    show_equals
  334.     
  335.     bsr    blitting
  336.     
  337.     move.l    4.w,a6
  338.     jsr    -138(a6)                ; permit
  339.  
  340.     move.l    dos,a6
  341.     move.l    loadme,d1
  342.     move.l    #1005,d2
  343.     jsr    -30(a6)
  344.     move.l    d0,file
  345.     cmp.l    #0,d0
  346.     bne.s    file_ok
  347.     
  348.     move.l    #0,counter
  349. error1:    move.w    $dff006,$dff180
  350.     cmp.l    #100,counter
  351.     bne.s    error1
  352.     bra    error2
  353.     
  354.     
  355. file_ok:
  356.     move.l    file,d1
  357.     move.l    unpackspc,d2
  358.     move.l    #200*1000,d3
  359.     jsr    -42(a6)
  360.     move.l    d0,length
  361.     
  362.     move.l    file,d1
  363.     jsr    -36(a6)
  364.  
  365.     move.l    unpackspc,a0        
  366.     add.l    length,a0    ; longword at end of packed buffer
  367.     move.l    #mt_data,a1    ; address to unpack to (start)
  368.     move.l    #0,a2        ; ??? dunno
  369.     move.l    #mt_data,a3    ; address to unpack to (start)
  370.  
  371.     bsr    unpack
  372.     
  373.     move.l    4.w,a6
  374.     jsr    -132(a6)                ; forbid
  375.  
  376.     bsr    maxmin
  377. error2:
  378.     bsr    mt_init
  379.     
  380.     move.l    #frame+64,blank
  381.  
  382.     move.l    #0,use_equals
  383.  
  384.     rts    
  385.  
  386. do_cheat:
  387.     cmp.l    #0,d0
  388.     beq.s    divequ_ok
  389.     
  390.     move.w    d0,divequal
  391.  
  392. divequ_ok:    
  393.     bra    waitmouse
  394.  
  395. unpack:
  396.     move.l    #0,len
  397.     move.w    #$f0f,colour
  398.  
  399.     LEA    ppBD8(PC),A5
  400.     MOVEQ    #3,D6
  401.     MOVEQ    #1,D4
  402.     MOVEQ    #7,D7
  403.     MOVEQ    #1,D5
  404.     MOVEA.L    A3,A2
  405.     MOVE.L    -(A0),D1
  406.     TST.B    D1
  407.     BEQ.S    ppB52
  408.     BSR.S    ppB76
  409.     SUB.L    D4,D1
  410.     LSR.L    D1,D5
  411. ppB52    LSR.L    #8,D1
  412.     ADDA.L    D1,A3
  413. ppB56    BSR.S    ppB76
  414.     BCS.S    ppB98
  415.     MOVEQ    #0,D2
  416. ppB5C    MOVE.W    D4,D0
  417.     BSR.S    ppB84
  418.     ADD.W    D1,D2
  419.     CMP.W    D6,D1
  420.     BEQ.S    ppB5C
  421. ppB66    MOVEQ    #7,D0
  422.     BSR.S    ppB84
  423.     MOVE.B    D1,-(A3)
  424.     add.l    #1,len
  425.     DBF    D2,ppB66
  426.     CMPA.L    A3,A2
  427.     BCS.S    ppB98
  428.     RTS
  429.     
  430.     
  431. ppB76    LSR.L    D4,D5
  432.     BEQ.S    ppB7C
  433.     RTS
  434. ppB7C    MOVE.L    -(A0),D5
  435.     ROXR.L    D4,D5
  436.     RTS
  437. ppB82    SUB.W    D4,D0
  438. ppB84    MOVEQ    #0,D1
  439. ppB86    LSR.L    D4,D5
  440.     BEQ.S    ppB92
  441. ppB8A    ROXL.L    D4,D1
  442.     DBF    D0,ppB86
  443.     RTS
  444. ppB92    MOVE.L    -(A0),D5
  445.     ROXR.L    D4,D5
  446.     BRA.S    ppB8A
  447. ppB98    MOVE.W    D4,D0
  448.     BSR.S    ppB84
  449.     MOVEQ    #0,D0
  450.     MOVE.B    0(A5,D1.W),D0
  451.     MOVE.W    D1,D2
  452.     CMP.W    D6,D2
  453.     BNE.S    ppBBE
  454.     BSR.S    ppB76
  455.     BCS.S    ppBAE
  456.     MOVEQ    #7,D0
  457. ppBAE    BSR.S    ppB82
  458.     MOVE.W    D1,D3
  459. ppBB2    MOVEQ    #2,D0
  460.     BSR.S    ppB84
  461.     ADD.W    D1,D2
  462.     CMP.W    D7,D1
  463.     BEQ.S    ppBB2
  464.     BRA.S    ppBC2
  465. ppBBE    BSR.S    ppB82
  466.     MOVE.W    D1,D3
  467. ppBC2    ADD.W    D4,D2
  468. ppBC4    MOVE.B    0(A3,D3.W),-(A3)
  469.     add.l    #1,len
  470.     DBF    D2,ppBC4    
  471.     eor.w    #$f0f,colour
  472.     move.w    colour,unpackcolour        ; background colour
  473.     CMPA.L    A3,A2
  474.     BCS    ppB56
  475.     RTS
  476.  
  477. ppBD8    DC.L    $90A0C0D,$4E468082    ; needs this one
  478.  
  479. colour:    dc.l    0
  480. len:    dc.l    0
  481. length:    dc.l    0
  482.  
  483. pause:    move.l    #0,delay3    
  484. pause2:    move.l    delay3,d0
  485.     cmp.l    #1,d0
  486.     blt.s    pause2
  487.     rts
  488.  
  489. new_interupt:
  490.     movem.l    d0-d7/a0-a6,-(sp) 
  491.  
  492.  
  493. wait_irq:
  494.     and.w    #$10,$dff01e        ; check for vblank
  495.     beq     no_music
  496.     move.w    #$10,$dff09c
  497.  
  498.     add.l    #1,counter
  499.  
  500.     bsr    scroller_up
  501.  
  502.     sub.l    #1,delay
  503.     bpl.s    not_now
  504.     
  505.     move.l    #1,delay
  506.  
  507.     cmp.l    #0,use_equals
  508.     bne.s    not_playing
  509.  
  510.     bsr    show_equals
  511.  
  512. not_now:
  513.     cmp.l    #$19cce7a2,mt_data
  514.     beq.s    not_playing
  515.     bsr    mt_music
  516. not_playing:
  517.  
  518. no_music:
  519.     movem.l    (sp)+,d0-d7/a0-a6    
  520.  
  521.     dc.w    $4ef9            ; jmp
  522. old_interupt:    dc.l    0        ; the old int lev 3
  523.  
  524. scroller_up:
  525.  
  526.     sub.l    #2,delay2
  527.     bpl    no_scrup
  528.     
  529.     move.l    #6,delay2
  530.     
  531.     lea    scrollpic+32,a0
  532.     add.l    #(80*4)+68,a0
  533.     lea    man1,a1
  534.     move.l    mannum,d0
  535.     mulu    #32*8*4,d0
  536.     add.l    d0,a1
  537.     
  538.     bsr    blitting
  539.     Move.l    a0,$dff054        ; dest mem d
  540.     Move.l    a1,$dff050        ; source mem a
  541.     Move.w    #$ffff,$dff044        ; blit first word mask source a
  542.     move.w    #$ffff,$dff046        ; blit last  word mask source a
  543.     move.w    #0,$dff064        ; modulo for source a
  544.     move.w    #(%1001*256)+$f0,$dff040
  545.     move.w    #0,$dff042        ; blit cont reg 1
  546.     Move.w    #72,$dff066        ; modulo for dest
  547.     Move.w    #(32*64)+4,$dff058    ; blit height,width
  548.     bsr    blitting
  549.  
  550.  
  551.     add.l    #99*80,a0
  552.     add.l    #32*8,a1
  553.     Move.l    a0,$dff054        ; dest mem d
  554.     Move.l    a1,$dff050        ; source mem a
  555.     Move.w    #$ffff,$dff044        ; blit first word mask source a
  556.     move.w    #$ffff,$dff046        ; blit last  word mask source a
  557.     move.w    #0,$dff064        ; modulo for source a
  558.     move.w    #(%1001*256)+$f0,$dff040
  559.     move.w    #0,$dff042        ; blit cont reg 1
  560.     Move.w    #72,$dff066        ; modulo for dest
  561.     Move.w    #(32*64)+4,$dff058    ; blit height,width
  562.     bsr    blitting
  563.  
  564.     add.l    #99*80,a0
  565.     add.l    #32*8,a1
  566.     Move.l    a0,$dff054        ; dest mem d
  567.     Move.l    a1,$dff050        ; source mem a
  568.     Move.w    #$ffff,$dff044        ; blit first word mask source a
  569.     move.w    #$ffff,$dff046        ; blit last  word mask source a
  570.     move.w    #0,$dff064        ; modulo for source a
  571.     move.w    #(%1001*256)+$f0,$dff040
  572.     move.w    #0,$dff042        ; blit cont reg 1
  573.     Move.w    #72,$dff066        ; modulo for dest
  574.     Move.w    #(32*64)+4,$dff058    ; blit height,width
  575.     bsr    blitting
  576.  
  577.     add.l    #99*80,a0
  578.     add.l    #32*8,a1
  579.     Move.l    a0,$dff054        ; dest mem d
  580.     Move.l    a1,$dff050        ; source mem a
  581.     Move.w    #$ffff,$dff044        ; blit first word mask source a
  582.     move.w    #$ffff,$dff046        ; blit last  word mask source a
  583.     move.w    #0,$dff064        ; modulo for source a
  584.     move.w    #(%1001*256)+$f0,$dff040
  585.     move.w    #0,$dff042        ; blit cont reg 1
  586.     Move.w    #72,$dff066        ; modulo for dest
  587.     Move.w    #(32*64)+4,$dff058    ; blit height,width
  588.     bsr    blitting
  589.  
  590.     add.l    #1,mannum
  591.     cmp.l    #6,mannum
  592.     blt    man_ok
  593.     
  594.     move.l    #56,delay2
  595.     move.l    #0,mannum
  596.     
  597. man_ok:            
  598.  
  599.     sub.l    #1,scrup
  600.     bpl.s    scrup_ok
  601.     
  602.     move.l    #5,scrup
  603.     
  604.     move.l    scrolltext_ptr,a1
  605.     cmp.b    #0,(a1)
  606.     bne.s    scroller_mellow
  607.     
  608.     move.l    #scrolltext,a1
  609.     move.l    a1,scrolltext_ptr
  610.     
  611.     
  612. scroller_mellow:    
  613.     lea    scrollpic+32,a2
  614.     add.l    #(99*80*3),a2
  615.     add.l    #(99*80),a2
  616.     bsr    blit_message
  617.  
  618. no_scrup:    
  619.             
  620.     rts
  621.  
  622. scrup_ok:
  623.  
  624.     clr.l    d7
  625.     
  626.     lea    scrollpic+32,a2
  627.     add.l    #(99*80*3)+34+(14*80),a2
  628.     move.l    a2,a1
  629.     add.l    #160,a1
  630.     
  631.     Move.l    a2,$dff054        ; dest mem d
  632.     Move.l    a1,$dff050        ; source mem a
  633.     Move.w    #$ffff,$dff044        ; blit 1st word mask source a
  634.     move.w    #$ffff,$dff046        ; blit last word mask source a
  635.     move.w    #50,$dff064        ; blit modulo for source a
  636.     or.w    #(%1001*256)+$f0,d7
  637.     move.w    d7,$dff040        ; blit cont reg 0
  638.     move.w    #0,$dff042        ; blit cont reg 1
  639.     Move.w    #50,$dff066        ; modulo for dest
  640.     Move.w    #(93*64)+15,$dff058    ; blit height,width
  641.  
  642.     jsr    blitting
  643.     
  644.     rts
  645.     
  646. blit_message:
  647.  
  648.     movem.l    d0-d7/a2-a6,-(sp)
  649.  
  650.     move.l    a1,a6
  651.     clr.b    d0
  652.     moveq.l    #-1,d1
  653.     
  654. blit_message_loop1:
  655.  
  656.     addq.l    #1,d1
  657.     move.b    (a6),d0
  658.     addq    #1,a6
  659.     cmp.b    #0,d0
  660.     bne.s    blit_message_loop1
  661.  
  662.     move.l    a6,scrolltext_ptr
  663.  
  664.     move.l    a2,midadd
  665.     move.w    d1,d5
  666.  
  667.     ;addq.l    #1,d1
  668.     ;divu    #2,d1
  669.     ;and.l    #$ff,d1
  670.     ;moveq.l    #18,d6        ; centre
  671.     ;sub.l    d1,d6
  672.     ;add.l    d6,a2
  673.     
  674.     add.l    #34,a2        ; lh edge of scrolled
  675.     
  676.     move.l    a2,d2
  677.     and.l    #$fffffffe,d2
  678.     move.l    a2,d3
  679.     and.l    #1,d3
  680.     move.l    d2,a2
  681.     
  682.     move.w    #12,d6
  683.     cmp.l    #1,d3
  684.     beq.s    cont_blit_message
  685.     
  686.     add.w    #12,mid
  687.     subq.l    #2,midadd
  688.     
  689. cont_blit_message:
  690.     
  691.     move.w    d6,d7
  692.     mulu    #8192,d7
  693.     
  694.     subq.w    #4,d6
  695.     cmp.w    #4,d6
  696.     bne.s    other_half
  697.     
  698.     move.w    #12,d6
  699.     add.l    #160,a2
  700.     
  701. other_half:
  702.  
  703.     sub.l    #80,a2
  704.     clr.w    d0
  705.     lea    font,a0
  706.     move.b    (a1),d0
  707.     addq.l    #1,a1
  708.     cmp.b    #0,d0
  709.     bne.s    mess_is_ok
  710.  
  711.     movem.l    (sp)+,d0-d7/a2-a6    
  712.     
  713. dont_centre:
  714.     rts
  715.     
  716.     
  717. mess_is_ok:
  718.     sub    #32,d0
  719.     mulu    #16,d0
  720.     add    d0,a0
  721.     
  722.     Move.l    a2,$dff054        ; dest mem d
  723.     Move.l    a0,$dff050        ; source mem a
  724.     move.l    a2,$dff048        ; source mem c
  725.     Move.w    #$ffff,$dff044        ; blit 1st word mask source a
  726.     move.w    #$ffff,$dff046        ; blit last word mask source a
  727.     move.w    #0,$dff064        ; blit modulo for source a
  728.     move.w    #78,$dff060        ; blit modulo for source c    
  729.     or.w    #(%1011*256)+$fa,d7
  730.     move.w    d7,$dff040        ; blit cont reg 0
  731.     move.w    #0,$dff042        ; blit cont reg 1
  732.     Move.w    #78,$dff066        ; modulo for dest
  733.     Move.w    #(8*64)+1,$dff058    ; blit height,width
  734.  
  735.     jsr    blitting
  736.  
  737.     addq.l    #1,a2
  738.     bra    cont_blit_message
  739.  
  740.  
  741.  
  742. show_equals:
  743.  
  744.     move.l    scr1,a0
  745.     add.l    #40,a0
  746.     move.l    blank,a1
  747.     
  748.     Move.l    a0,$dff054        ; dest mem d
  749.     Move.l    a1,$dff050        ; source mem a
  750.     Move.w    #$ffff,$dff044        ; blit first word mask source a
  751.     move.w    #$ffff,$dff046        ; blit last  word mask source a
  752.     move.w    #0,$dff064        ; modulo for source a
  753.     move.w    #(%1001*256)+$f0,$dff040
  754.     move.w    #0,$dff042        ; blit cont reg 1
  755.     Move.w    #0,$dff066        ; modulo for dest
  756.     Move.w    #(98*64)+20,$dff058    ; blit height,width
  757.     bsr    blitting
  758.  
  759.     add.l    #40*100,a0
  760.     Move.l    a0,$dff054        ; dest mem d
  761.     Move.l    a1,$dff050        ; source mem a
  762.     Move.w    #(98*64)+20,$dff058    ; blit height,width
  763.     bsr    blitting
  764.  
  765.     add.l    #40*100,a0
  766.     Move.l    a0,$dff054        ; dest mem d
  767.     Move.l    a1,$dff050        ; source mem a
  768.     Move.w    #(98*64)+20,$dff058    ; blit height,width
  769.     bsr    blitting
  770.     
  771.     add.l    #40*100,a0
  772.     Move.l    a0,$dff054        ; dest mem d
  773.     Move.l    a1,$dff050        ; source mem a
  774.     Move.w    #(98*64)+20,$dff058    ; blit height,width
  775.     bsr    blitting
  776.     
  777.     add.l    #40*100,a0
  778.     Move.l    a0,$dff054        ; dest mem d
  779.     Move.l    a1,$dff050        ; source mem a
  780.     Move.w    #(98*64)+20,$dff058    ; blit height,width
  781.     bsr    blitting    
  782.  
  783.  
  784.     lea    equals,a1
  785.     lea    fades,a4
  786.     move.l    #1,d2
  787. show_equal_loop1:
  788.  
  789.     clr.l    d1
  790.     move.b    (a1,d2),d1
  791.     move.b    (a4,d2),d7
  792.     add.b    d7,(a1,d2)
  793.     bpl.s    equal_zero
  794.     move.b    #0,(a1,d2)
  795. equal_zero:
  796.  
  797.     add.l    #1,d2
  798.     cmp.l    #14,d2
  799.     blt    show_equal_loop1
  800.  
  801.     move.l    scr1,a0
  802.     add.l    #64*40,a0
  803.     add.l    #1,a0 
  804.     lea    mc1a,a1
  805.     lea    equals+1,a2
  806.     lea    fades+1,a3
  807.     bsr    all_blit
  808.  
  809.     move.w    #11,d0
  810.     
  811. all_mchars:
  812.  
  813.     add.l    #33*4*5*2,a1
  814.     add.l    #3,a0
  815.     add.l    #1,a2
  816.     bsr    all_blit
  817.  
  818.     dbf    d0,all_mchars
  819.  
  820.     move.l    scr1,a0
  821.     move.l    scr2,a1
  822.     move.l    a1,scr1
  823.     move.l    a0,scr2
  824.     
  825.     move.l    scr2,d0
  826.     move.w    d0,bplane0_lo
  827.     swap    d0
  828.     move.w    d0,bplane0_hi
  829.     swap    d0
  830.     add.l    #40*100,d0
  831.     move.w    d0,bplane1_lo
  832.     swap    d0
  833.     move.w    d0,bplane1_hi
  834.     swap    d0
  835.     add.l    #40*100,d0
  836.     move.w    d0,bplane2_lo
  837.     swap    d0
  838.     move.w    d0,bplane2_hi
  839.     swap    d0
  840.     add.l    #40*100,d0
  841.     move.w    d0,bplane3_lo
  842.     swap    d0
  843.     move.w    d0,bplane3_hi
  844.     swap    d0
  845.     add.l    #40*100,d0
  846.     move.w    d0,bplane4_lo
  847.     swap    d0
  848.     move.w    d0,bplane4_hi
  849.  
  850.     rts
  851.     
  852. all_blit:
  853.     movem.l    d0-d7/a0-a6,-(sp) 
  854.     
  855.     clr.l    d0
  856.     move.b    (a2),d0
  857.     muls    #40,d0
  858.     sub.l    d0,a0
  859.  
  860.     cmp.l    #0,d0
  861.     bne.s    normal_chr
  862.     add.l    #4*33*5,a1
  863. normal_chr:
  864.     
  865.     move.l    a0,d4
  866.     and.l    #$fffffffe,d4
  867.     move.l    d4,a4
  868.     move.l    a0,d5
  869.     and.l    #1,d5
  870.     
  871.     mulu    #32768,d5
  872.     or.w    #(%1011*256)+$fa,d5
  873.     
  874.     Move.l    a4,$dff054        ; dest mem d
  875.     Move.l    a4,$dff048        ; source mem c
  876.     Move.l    a1,$dff050        ; source mem a
  877.     Move.w    #$ffff,$dff044        ; blit first word mask source a
  878.     move.w    #$ff00,$dff046        ; blit last  word mask source a
  879.     move.w    #0,$dff064        ; modulo for source a
  880.     Move.w    #36,$dff060        ; modulo for source c
  881.     move.w    d5,$dff040
  882.     move.w    #0,$dff042        ; blit cont reg 1
  883.     Move.w    #36,$dff066        ; modulo for dest d
  884.     Move.w    #(33*64)+2,$dff058    ; blit height,width
  885.  
  886.     bsr    blitting
  887.  
  888.     add.l    #40*100,a4
  889.     add.l    #4*33,a1    
  890.     Move.l    a4,$dff054        ; dest mem d
  891.     Move.l    a4,$dff048        ; source mem c
  892.     Move.l    a1,$dff050        ; source mem a
  893.     Move.w    #(33*64)+2,$dff058    ; blit height,width
  894.     bsr    blitting
  895.  
  896.     add.l    #40*100,a4
  897.     add.l    #4*33,a1    
  898.     Move.l    a4,$dff054        ; dest mem d
  899.     Move.l    a4,$dff048        ; source mem c
  900.     Move.l    a1,$dff050        ; source mem a
  901.     Move.w    #(33*64)+2,$dff058    ; blit height,width
  902.     bsr    blitting
  903.  
  904.     add.l    #40*100,a4
  905.     add.l    #4*33,a1    
  906.     Move.l    a4,$dff054        ; dest mem d
  907.     Move.l    a4,$dff048        ; source mem c
  908.     Move.l    a1,$dff050        ; source mem a
  909.     Move.w    #(33*64)+2,$dff058    ; blit height,width
  910.     bsr    blitting
  911.  
  912.     add.l    #40*100,a4
  913.     add.l    #4*33,a1    
  914.     Move.l    a4,$dff054        ; dest mem d
  915.     Move.l    a4,$dff048        ; source mem c
  916.     Move.l    a1,$dff050        ; source mem a
  917.     Move.w    #(33*64)+2,$dff058    ; blit height,width
  918.     bsr    blitting
  919.  
  920.     movem.l    (sp)+,d0-d7/a0-a6    
  921.     rts
  922.     
  923. print_num:
  924.     movem.l    d0-d7/a0-a6,-(sp) 
  925.  
  926.     cmp.l    #-1,calc
  927.     bne.s    normal_num
  928.     
  929.     clr.l    d0
  930.     move.w    (a6),d0
  931.  
  932.     cmp.w    #0,d0
  933.     beq.s    skip_num
  934.  
  935.     cmp.l    maxequal,d0
  936.     blt.s    not_max
  937.     move.l    d0,maxequal
  938. not_max:
  939.     cmp.l    minequal,d0
  940.     bgt.s    not_min
  941.  
  942.     move.l    d0,minequal
  943. not_min:
  944.  
  945.     move.l    maxequal,d0
  946.     move.l    minequal,d1
  947.     
  948.     sub.l    d1,d0
  949.     divu    #16,d0                ; should by 13 - expands range!
  950.     
  951.     move.w    d0,divequal
  952. skip_num
  953.     movem.l    (sp)+,d0-d7/a0-a6    
  954.     rts
  955.  
  956. normal_num:
  957.     clr.l    d0
  958.     move.w    (a6),d0
  959.  
  960.     sub.l    minequal,d0            ; no notes less than 100!
  961.     move.w    divequal,d1    
  962.     divu    divequal,d0            ; smooth note - ie 13 equalisers
  963.     cmp.w    #13,d0
  964.     blt.s    equ_too_big
  965.  
  966.     move.w    #13,d0
  967.  
  968. equ_too_big:
  969.     cmp.w    #1,d0
  970.     bgt.s    equ_too_small
  971.  
  972.     move.w    #1,d0
  973.  
  974. equ_too_small:
  975.  
  976.     lea    equals,a0
  977.     cmp.b    #33,(a0,d0)
  978.     blt.s    equ_skip1
  979.     move.b    #33,(a0,d0)
  980. equ_skip1:
  981.     add.b    #30,(a0,d0)
  982.     
  983.     lea    fades,a0
  984.     move.b    #-2,(a0,d0)
  985.  
  986.     clr.l    d0
  987.  
  988.     movem.l    (sp)+,d0-d7/a0-a6    
  989.     rts
  990.  
  991. blitting:
  992.     btst    #6,$dff002
  993.     bne.s    blitting
  994.  
  995.     rts
  996.     
  997.  
  998.     
  999. Mt_Init:Lea    Mt_Data,a0
  1000.     Move.l    a0,a1
  1001.     Add.l    #$3b8,a1
  1002.     Moveq    #$7f,d0
  1003.     Moveq    #0,d1
  1004. Mt_Loop    Move.l    d1,d2
  1005.     Subq.w    #1,d0
  1006. Mt_Lop2    Move.b    (a1)+,d1
  1007.     Cmp.b    d2,d1
  1008.     Bgt.s    Mt_Loop
  1009.     Dbf    d0,Mt_Lop2
  1010.     Addq.b    #1,d2
  1011.  
  1012.     Lea    Mt_SampleStarts,a1
  1013.     Asl.l    #8,d2
  1014.     Asl.l    #2,d2
  1015.     Add.l    #$43c,d2
  1016.     Add.l    a0,d2
  1017.     Move.l    d2,a2
  1018.     Moveq    #$1e,d0
  1019. Mt_Lop3    Move.l    #0,(a2)
  1020.     Move.l    a2,(a1)+
  1021.     Moveq    #0,d1
  1022.     Move.w    42(a0),d1
  1023.     Asl.l    #1,d1
  1024.     Add.l    d1,a2
  1025.     Add.l    #$1e,a0
  1026.     Dbf    d0,Mt_Lop3
  1027.  
  1028.     Or.b    #$2,$bfe001
  1029.     Move.b    #$6,Mt_Speed
  1030.     Move.b    #$3f,Mt_Voice1+$12
  1031.     Move.b    #$3f,Mt_Voice2+$12
  1032.     Move.b    #$3f,Mt_Voice3+$12
  1033.     Move.b    #$3f,Mt_Voice4+$12
  1034.  
  1035.     Move.w    #0,$dff0a8
  1036.     Move.w    #0,$dff0b8
  1037.     Move.w    #0,$dff0c8
  1038.     Move.w    #0,$dff0d8
  1039.     Clr.b    Mt_SongPos
  1040.     Clr.b    Mt_Counter
  1041.     Clr.w    Mt_PattPos
  1042.     Rts
  1043.  
  1044. Mt_End    Move.w    #0,$dff0a8
  1045.     Move.w    #0,$dff0b8
  1046.     Move.w    #0,$dff0c8
  1047.     Move.w    #0,$dff0d8
  1048.     Move.w    #$f,$dff096
  1049.     Moveq.l    #0,d0
  1050.     Rts
  1051.  
  1052. Mt_Music
  1053.     Movem.l    d0-d4/a0-a3/a5-a6,-(a7)
  1054.     Lea    Mt_Data,a0
  1055.     Addq.b    #$1,Mt_Counter
  1056.     Move.b    Mt_Counter,d0
  1057.     
  1058.     cmp.l    #-1,calc
  1059.     beq.s    mt_playit
  1060.     
  1061.     
  1062.     cmp.b    Mt_speed,d0
  1063.     Blt.s    Mt_NoNew
  1064. mt_playit
  1065.     Clr.b    Mt_Counter
  1066.     Bra    Mt_GetNew
  1067. Mt_NoNew
  1068.  
  1069.     Lea    Mt_Voice1,a6
  1070.     move.l    dff0a0,a5
  1071.     Bsr    Mt_CheckCom
  1072.     Lea    Mt_Voice2,a6
  1073.     move.l    dff0b0,a5
  1074.     Bsr    Mt_CheckCom
  1075.     Lea    Mt_Voice3,a6
  1076.     move.l    dff0c0,a5
  1077.     Bsr    Mt_CheckCom
  1078.     Lea    Mt_Voice4,a6
  1079.     move.l    dff0d0,a5
  1080.     Bsr    Mt_CheckCom
  1081.     Bra    Mt_Endr
  1082.  
  1083. Mt_Arpeggio
  1084.     Moveq.l    #0,d0
  1085.     Move.b    Mt_Counter,d0
  1086.     Divs    #$3,d0
  1087.     Swap    d0
  1088.     Cmp.w    #$0,d0
  1089.     Beq.s    Mt_Arp2
  1090.     Cmp.w    #$2,d0
  1091.     Beq.s    Mt_Arp1
  1092.     Moveq.l    #0,d0
  1093.     Move.b    $3(a6),d0
  1094.     Lsr.b    #4,d0
  1095.     Bra.s    Mt_Arp3
  1096.     
  1097. Mt_Arp1    Moveq.l    #0,d0
  1098.     Move.b    $3(a6),d0
  1099.     And.b    #$f,d0
  1100.     Bra.s    Mt_Arp3
  1101. Mt_Arp2    Move.w    $10(a6),d2
  1102.     Bra.s    Mt_Arp4
  1103. Mt_Arp3    Asl.w    #1,d0
  1104.     Moveq.l    #0,d1
  1105.     Move.w    $10(a6),d1
  1106.     Lea    Mt_Periods,a0
  1107.     Moveq    #$24,d7
  1108. Mt_ArpLoop
  1109.     Move.w    (a0,d0.w),d2
  1110.     Cmp.w    (a0),d1
  1111.     Bge.s    Mt_Arp4
  1112.     Addq.l    #2,a0
  1113.     Dbf    d7,Mt_ArpLoop
  1114.     Rts
  1115. Mt_Arp4    Move.w    d2,$6(a5)
  1116.     Rts
  1117.  
  1118. Mt_GetNew
  1119.     Lea    Mt_Data,a0
  1120.     Move.l    a0,a3
  1121.     Move.l    a0,a2
  1122.     Add.l    #$c,a3
  1123.     Add.l    #$3b8,a2
  1124.     Add.l    #$43c,a0
  1125.  
  1126.     Moveq.l    #0,d0
  1127.     Move.l    d0,d1
  1128.     Move.b    Mt_SongPos,d0
  1129.  
  1130.  
  1131.     Move.b    (a2,d0.w),d1
  1132.     Asl.l    #8,d1
  1133.     Asl.l    #2,d1
  1134.     Add.w    Mt_PattPos,d1
  1135.     Clr.w    Mt_DmaCon
  1136.     move.l    dff0a0,a5
  1137.     Lea    Mt_Voice1,a6
  1138.     Move.l    #Mt_Instrument+0,a4
  1139.     Bsr.s    Mt_PlayVoice
  1140.     move.l    dff0b0,a5
  1141.     Lea    Mt_voice2,a6
  1142.     Move.l    #Mt_Instrument+4,a4
  1143.     Bsr.s    Mt_PlayVoice
  1144.     move.l    dff0c0,a5
  1145.     Lea    Mt_Voice3,a6
  1146.     Move.l    #Mt_Instrument+8,a4
  1147.     Bsr.s    Mt_PlayVoice
  1148.     move.l    dff0d0,a5
  1149.     Lea    Mt_Voice4,a6
  1150.     Move.l    #Mt_Instrument+12,a4
  1151.     Bsr.s    Mt_PlayVoice
  1152.     Bra    Mt_SetDma
  1153.  
  1154. Mt_PlayVoice
  1155.     Move.l    (a0,d1.l),(a6)
  1156.     Addq.l    #4,d1
  1157.     Moveq.l    #0,d2
  1158.     Move.b    $2(a6),d2
  1159.     And.b    #$f0,d2
  1160.     Lsr.b    #4,d2
  1161.     Move.b    (a6),d0
  1162.     And.b    #$f0,d0
  1163.     Or.b    d0,d2
  1164.     
  1165.     cmp.l    #-1,calc
  1166.     beq.s    mt_playnote
  1167.     
  1168.     Tst.b    d2
  1169.     Beq    Mt_SetRegs
  1170.  
  1171. mt_playnote
  1172.     Moveq    #0,d3
  1173.  
  1174.     bsr    print_num        ; (a6) = note played
  1175.  
  1176.     Lea    Mt_SampleStarts,a1
  1177.     Move.l    d2,d4
  1178.     Subq.l    #$1,d2
  1179.     Asl.l    #2,d2
  1180.  
  1181.     Move.l    d2,(a4)        
  1182.  
  1183.     Mulu    #$1e,d4
  1184.     Move.l    (a1,d2.l),$4(a6)
  1185.     Move.w    (a3,d4.l),$8(a6)
  1186.     Move.w    $2(a3,d4.l),$12(a6)
  1187.     Move.w    $4(a3,d4.l),d3
  1188.     Tst.w    d3
  1189.     Beq.s    Mt_NoLoop
  1190.     
  1191.     cmp.l    #-1,calc
  1192.     beq.s    mt_setregs
  1193.  
  1194.     Move.l    $4(a6),d2
  1195.     Asl.w    #1,d3
  1196.     Add.l    d3,d2
  1197.     Move.l    d2,$a(a6)
  1198.     Move.w    $4(a3,d4.l),d0
  1199.     Add.w    $6(a3,d4.l),d0
  1200.     Move.w    d0,8(a6)
  1201.     Move.w    $6(a3,d4.l),$e(a6)
  1202.     Move.w    $12(a6),$8(a5)
  1203.     Bra.w    Mt_SetRegs
  1204. Mt_NoLoop
  1205.     
  1206.     cmp.l    #-1,calc
  1207.     beq.s    mt_setregs
  1208.  
  1209.     Move.l    $4(a6),d2
  1210.     Add.l    d3,d2
  1211.     Move.l    d2,$a(a6)
  1212.     Move.w    $6(a3,d4.l),$e(a6)
  1213.     Move.w    $12(a6),$8(a5)
  1214.         
  1215. Mt_SetRegs
  1216.     Move.w    (a6),d0
  1217.     And.w    #$fff,d0
  1218.     Beq    Mt_CheckCom2
  1219.     Move.b    $2(a6),d0
  1220.     And.b    #$F,d0
  1221.     Cmp.b    #$3,d0
  1222.     Bne.s    Mt_SetPeriod
  1223.     Bsr    Mt_SetMyPort
  1224.     Bra    Mt_checkcom2
  1225. Mt_SetPeriod
  1226.     Move.w    (a6),$10(a6)
  1227.     And.w    #$fff,$10(a6)
  1228.     Move.w    $14(a6),d0
  1229.     Move.w    d0,$dff096
  1230.     Move.b    #0,$1b(a6)
  1231.  
  1232.     cmp.l    #-1,calc
  1233.     beq    mt_checkcom
  1234.     
  1235.     Move.l    $4(a6),(a5)
  1236.     Move.w    $8(a6),$4(a5)
  1237.     Move.w    $10(a6),d0
  1238.     And.w    #$fff,d0
  1239.     Move.w    d0,$6(a5)
  1240.     Move.w    $14(a6),d0
  1241.     Or.w    d0,Mt_DmaCon
  1242.     Bra    Mt_CheckCom2
  1243.  
  1244. Mt_SetDma
  1245.     
  1246.     cmp.l    #-1,calc
  1247.     beq    mt_wai3
  1248.     
  1249.     Move.w    #$12c,d0
  1250. Mt_Wait    Dbf    d0,Mt_Wait
  1251.     Move.w    Mt_DmaCon,d0
  1252.     Or.w    #$8000,d0
  1253.     Move.w    d0,$dff096
  1254.     Move.w    #$12c,d0
  1255.     
  1256.     cmp.l    #-1,calc
  1257.     beq    mt_wai3
  1258.     
  1259. Mt_Wai2    Dbf    d0,Mt_Wai2
  1260.     move.l    dff000,a5
  1261.     Lea    Mt_Voice4,a6
  1262.     Move.l    $a(a6),$d0(a5)
  1263.     Move.w    $e(a6),$d4(a5)
  1264.     Lea    Mt_Voice3,a6
  1265.     Move.l    $a(a6),$c0(a5)
  1266.     Move.w    $e(a6),$c4(a5)
  1267.     Lea    Mt_voice2,a6
  1268.     Move.l    $a(a6),$b0(a5)
  1269.     Move.w    $e(a6),$b4(a5)
  1270.     Lea    Mt_voice1,a6
  1271.     Move.l    $a(a6),$a0(a5)
  1272.     Move.w    $e(a6),$a4(a5)
  1273.  
  1274. mt_wai3:
  1275.  
  1276.     Add.w    #$10,Mt_PattPos
  1277.     Cmp.w    #$400,Mt_PattPos
  1278.     Bne.s    Mt_Endr
  1279. Mt_Nex    Clr.w    Mt_PattPos
  1280.     Clr.b    Mt_Break
  1281.     Addq.b    #1,Mt_SongPos
  1282.     And.b    #$7f,Mt_SongPos
  1283.     Move.b    Mt_SongPos,d1
  1284.     Cmp.b    Mt_Data+$3b6,d1
  1285.     Bne.s    Mt_Endr
  1286.     
  1287.     move.l    #-1,finished
  1288.     Clr.b    Mt_SongPos            ; module end!
  1289.  
  1290. Mt_Endr    Tst.b    Mt_Break
  1291.     Bne.s    Mt_Nex
  1292.     Movem.l    (a7)+,d0-d4/a0-a3/a5-a6
  1293.     Rts
  1294.  
  1295. Mt_SetMyPort
  1296.     Move.w    (a6),d2
  1297.     And.w    #$fff,d2
  1298.     Move.w    d2,$18(a6)
  1299.     Move.w    $10(a6),d0
  1300.     Move.b    #0,$16(a6)
  1301.     Cmp.w    d0,d2
  1302.     Beq.s    Mt_ClrPort
  1303.     Bge.s    Mt_Rt
  1304.     Move.b    #$1,$16(a6)
  1305.     Rts
  1306. Mt_ClrPort
  1307.     Move.w    #0,$18(a6)
  1308. Mt_Rt    Rts
  1309.  
  1310. Mt_MyPort
  1311.     Move.b    $3(a6),d0
  1312.     Beq.s    Mt_MySlide
  1313.     Move.b    d0,$17(a6)
  1314.     Move.b    #0,$3(a6)
  1315. Mt_MySlide
  1316.     Tst.w    $18(a6)
  1317.     Beq.s    Mt_Rt
  1318.     Moveq.l    #0,d0
  1319.     Move.b    $17(a6),d0
  1320.     Tst.b    $16(a6)
  1321.     Bne.s    Mt_MySub
  1322.     Add.w    d0,$10(a6)
  1323.     Move.w    $18(a6),d0
  1324.     Cmp.w    $10(a6),d0
  1325.     Bgt.s    Mt_MyOK
  1326.     Move.w    $18(a6),$10(a6)
  1327.     Move.w    #0,$18(a6)
  1328. Mt_MyOK    Move.w    $10(a6),$6(a5)
  1329.     Rts
  1330. Mt_MySub
  1331.     Sub.w    d0,$10(a6)
  1332.     Move.w    $18(a6),d0
  1333.     Cmp.w    $10(a6),d0
  1334.     Blt.s    Mt_MyOK
  1335.     Move.w    $18(a6),$10(a6)
  1336.     Move.w    #0,$18(a6)
  1337.     Move.w    $10(a6),$6(a5)
  1338.     Rts
  1339.  
  1340. Mt_Vib    
  1341.     Move.b    $3(a6),d0
  1342.     Beq.s    Mt_Vi
  1343.     Move.b    d0,$1a(a6)
  1344.  
  1345. Mt_Vi    Move.b    $1b(a6),d0
  1346.     Lea    Mt_Sin,a4
  1347.     Lsr.w    #$2,d0
  1348.     And.w    #$1f,d0
  1349.     Moveq.l    #0,d2
  1350.     Move.b    (a4,d0.w),d2
  1351.     Move.b    $1a(a6),d0
  1352.     And.w    #$f,d0
  1353.     Mulu    d0,d2
  1354.     Lsr.w    #$6,d2
  1355.     Move.w    $10(a6),d0
  1356.     Tst.b    $1b(a6)
  1357.     Bmi.s    Mt_VibMin
  1358.     Add.w    d2,d0
  1359.     Bra.s    Mt_Vib2
  1360. Mt_VibMin
  1361.     Sub.w    d2,d0
  1362. Mt_Vib2    Move.w    d0,$6(a5)
  1363.     Move.b    $1a(a6),d0
  1364.     Lsr.w    #$2,d0
  1365.     And.w    #$3c,d0
  1366.     Add.b    d0,$1b(a6)
  1367.     Rts
  1368.  
  1369. Mt_Nop    Move.w    $10(a6),$6(a5)
  1370.     Rts
  1371.  
  1372. Mt_CheckCom
  1373.     cmp.l    #-1,calc
  1374.     bne.s    mt_checkedcom
  1375.     move.w    finding,unpackcolour
  1376.     eor.w    #$f0f,finding
  1377. mt_checkedcom:
  1378.     Move.w    $2(a6),d0
  1379.     And.w    #$fff,d0
  1380.     Beq.s    Mt_Nop
  1381.     Move.b    $2(a6),d0
  1382.     And.b    #$f,d0
  1383.     Tst.b    d0
  1384.     Beq    Mt_Arpeggio
  1385.     Cmp.b    #$1,d0
  1386.     Beq.s    Mt_PortUp
  1387.     Cmp.b    #$2,d0
  1388.     Beq    Mt_PortDown
  1389.     Cmp.b    #$3,d0
  1390.     Beq    Mt_MyPort
  1391.     Cmp.b    #$4,d0
  1392.     Beq    Mt_Vib
  1393.     Move.w    $10(a6),$6(a5)
  1394.     Cmp.b    #$a,d0
  1395.     Beq.s    Mt_VolSlide
  1396.     Rts
  1397.  
  1398. Mt_VolSlide
  1399.     Moveq    #0,d0
  1400.     Move.b    $3(a6),d0
  1401.     Lsr.b    #4,d0
  1402.     Tst.b    d0
  1403.     Beq.s    Mt_VolDown
  1404.     Add.b    d0,$13(a6)
  1405.     Cmp.b    #$3f,$13(a6)
  1406.     Ble.s    Mt_Vol2        
  1407.     Move.b    #$3f,$13(a6)
  1408. Mt_Vol2    Move.w    $12(a6),$8(a5)
  1409.     Rts
  1410.  
  1411. Mt_VolDown
  1412.     Moveq    #0,d0
  1413.     Move.b    $3(a6),d0
  1414.     And.b    #$f,d0
  1415.     Sub.b    d0,$13(a6)
  1416.     Bpl.s    Mt_Vol3
  1417.     Move.b    #0,$13(a6)
  1418. Mt_Vol3    Move.w    $12(a6),$8(a5)
  1419.     Rts
  1420.  
  1421. Mt_PortUp
  1422.     Moveq    #0,d0
  1423.     Move.b    $3(a6),d0
  1424.     Sub.w    d0,$10(a6)
  1425.     Move.w    $10(a6),d0
  1426.     And.w    #$fff,d0
  1427.     Cmp.w    #$71,d0
  1428.     Bpl.s    Mt_Por2
  1429.     And.w    #$f000,$10(a6)
  1430.     Or.w    #$71,$10(a6)
  1431. Mt_Por2    Move.w    $10(a6),d0
  1432.     And.w    #$fff,d0
  1433.     Move.w    d0,$6(a5)
  1434.     Rts
  1435.  
  1436. Mt_PortDown
  1437.     Moveq.w    #0,d0
  1438.     Move.b    $3(a6),d0
  1439.     Add.w    d0,$10(a6)
  1440.     Move.w    $10(a6),d0
  1441.     And.w    #$fff,d0
  1442.     Cmp.w    #$358,d0
  1443.     Bmi.s    Mt_Por3
  1444.     And.w    #$f000,$10(a6)
  1445.     Or.w    #$358,$10(a6)
  1446. Mt_Por3    Move.w    $10(a6),d0
  1447.     And.w    #$fff,d0
  1448.     Move.w    d0,$6(a5)
  1449.     Rts
  1450.  
  1451. Mt_CheckCom2
  1452.     Move.b    $2(a6),d0
  1453.     And.b    #$f,d0
  1454.     Cmp.b    #$e,d0
  1455.     Beq.s    Mt_SetFilt
  1456.     Cmp.b    #$d,d0
  1457.     Beq.s    Mt_PattBreak
  1458.     Cmp.b    #$b,d0
  1459.     Beq.s    Mt_PosJmp
  1460.     Cmp.b    #$c,d0
  1461.     Beq.s    Mt_SetVol
  1462.     Cmp.b    #$f,d0
  1463.     Beq.s    Mt_SetSpeed
  1464.     Rts
  1465.  
  1466. Mt_SetFilt
  1467.     Move.b    $3(a6),d0
  1468.     And.b    #$1,d0
  1469.     Asl.b    #$1,d0
  1470.     And.b    #$fd,$bfe001
  1471.     Or.b    d0,$bfe001
  1472.     Rts
  1473. Mt_PattBreak            ;  ** HERE`S THE FIX - IT WAS
  1474.     Move.b    #1,Mt_Break    ;  Not.b Mt_Break.
  1475.     Rts            ;  **************************
  1476. Mt_PosJmp
  1477.     Move.b    $3(a6),d0
  1478.     Subq.b    #$1,d0
  1479.     Move.b    d0,Mt_SongPos
  1480.     Not.b    Mt_Break
  1481.     Rts
  1482. Mt_SetVol
  1483.     Cmp.b    #$3f,$3(a6)
  1484.     Ble.s    Mt_Vol4
  1485.     Move.b    #$3f,$3(a6)
  1486. Mt_Vol4    Move.b    $3(a6),$8(a5)
  1487.     Move.b    $3(a6),$13(a6)    
  1488.     Rts
  1489. Mt_SetSpeed
  1490.     Move.b    $3(a6),d0
  1491.     And.w    #$1f,d0
  1492.     Beq.s    Mt_Rts2
  1493.     Clr.b    Mt_Counter
  1494.     Move.b    d0,Mt_Speed
  1495. Mt_Rts2    Rts
  1496.  
  1497. Mt_Sin
  1498.     Dc.b $00,$18,$31,$4a,$61,$78,$8d,$a1,$b4,$c5,$d4,$e0,$eb,$f4,$fa,$fd
  1499.     Dc.b $ff,$fd,$fa,$f4,$eb,$e0,$d4,$c5,$b4,$a1,$8d,$78,$61,$4a,$31,$18
  1500.  
  1501. Mt_Periods
  1502.     Dc.w $0358,$0328,$02fa,$02d0,$02a6,$0280,$025c,$023a,$021a,$01fc,$01e0
  1503.     Dc.w $01c5,$01ac,$0194,$017d,$0168,$0153,$0140,$012e,$011d,$010d,$00fe
  1504.     Dc.w $00f0,$00e2,$00d6,$00ca,$00be,$00b4,$00aa,$00a0,$0097,$008f,$0087
  1505.     Dc.w $007f,$0078,$0071,$0000,$0000
  1506.  
  1507. Mt_Speed    Dc.b    $6
  1508. Mt_SongPos    Dc.b    $0
  1509. Mt_PattPos    Dc.w    $0
  1510. Mt_Counter    Dc.b    $0
  1511.  
  1512. Mt_Break    Dc.b    $0
  1513. Mt_DmaCon    Dc.w    $0
  1514. Mt_SampleStarts    Dcb.l    $1f,0
  1515.  
  1516. Mt_Voice1    Dcb.w    10,0
  1517.         Dc.w    $1
  1518.         Dcb.w    3,0
  1519.         Dc.w    0    ;new note last time
  1520. Mt_Voice2    Dcb.w    10,0
  1521.         Dc.w    $2
  1522.         Dcb.w    3,0
  1523.         Dc.w    0    ;new note last time
  1524. Mt_Voice3    Dcb.w    10,0
  1525.         Dc.w    $4
  1526.         Dcb.w    3,0
  1527.         Dc.w    0    ;new note last time
  1528. Mt_Voice4    Dcb.w    10,0
  1529.         Dc.w    $8
  1530.         Dcb.w    3,0
  1531.         Dc.w    0    ;new note last time
  1532. Mt_InstCount:    dc.b    0
  1533. Mt_Instrument:    dcb.l    4,0
  1534.  
  1535.     
  1536.     
  1537.     Section    copdat,Data_c
  1538.  
  1539. my_copper:    
  1540.         dc.w    $100,0
  1541.         dc.w    $104,0        ; bp control reg
  1542.         dc.w    $108,0        ; bp modulo - odd
  1543.         dc.w    $10a,0        ; bp modulo - even
  1544.         dc.w    $180,0        ; colour 0 to black
  1545.         dc.w    $102,0
  1546.         
  1547.         dc.w      $120
  1548. spr_1h:        dc.w    0,$122
  1549. spr_1l:        dc.w    0,$124
  1550. spr_2h:        dc.w    0,$126
  1551. spr_2l:        dc.w    0,$128
  1552. spr_3h:        dc.w    0,$12a
  1553. spr_3l:        dc.w    0,$12c
  1554. spr_4h:        dc.w    0,$12e
  1555. spr_4l:        dc.w    0
  1556.         
  1557.         dc.w    $092,$38    ; bp start horz
  1558.         dc.w    $094,$d0    ; bp stop horz
  1559.         dc.w    $08e,$2c50    ; bp window start left
  1560.         dc.w    $090,$2ce4    ; bp window bot right
  1561.  
  1562.         dc.w    $100,$5200    ; 1 bp - lores
  1563.         
  1564. cmap1:        dc.w    $180,0
  1565.         dc.w    $182,0    
  1566.         dc.w    $184,0    
  1567.         dc.w    $186,0    
  1568.         dc.w    $188,0    
  1569.         dc.w    $18a,0    
  1570.         dc.w    $18c,0    
  1571.         dc.w    $18e,0    
  1572.         dc.w    $190,0
  1573.         dc.w    $192,0    
  1574.         dc.w    $194,0    
  1575.         dc.w    $196,0    
  1576.         dc.w    $198,0    
  1577.         dc.w    $19a,0    
  1578.         dc.w    $19c,0    
  1579.         dc.w    $19e,0    
  1580.         dc.w    $1a0,0
  1581.         dc.w    $1a2,0    
  1582.         dc.w    $1a4,0    
  1583.         dc.w    $1a6,0    
  1584.         dc.w    $1a8,0    
  1585.         dc.w    $1aa,0    
  1586.         dc.w    $1ac,0    
  1587.         dc.w    $1ae,0    
  1588.         dc.w    $1b0,0
  1589.         dc.w    $1b2,0    
  1590.         dc.w    $1b4,0    
  1591.         dc.w    $1b6,0    
  1592.         dc.w    $1b8,0    
  1593.         dc.w    $1ba,0    
  1594.         dc.w    $1bc,0    
  1595.         dc.w    $1be,0    
  1596.  
  1597.         dc.w    $0e0
  1598. bitplane0_hi:    dc.w    0
  1599.         dc.w    $e2
  1600. bitplane0_lo:    dc.w    0,$e4
  1601. bitplane1_hi:    dc.w    0
  1602.         dc.w    $e6
  1603. bitplane1_lo:    dc.w    0,$e8
  1604. bitplane2_hi:    dc.w    0
  1605.         dc.w    $ea
  1606. bitplane2_lo:    dc.w    0,$ec    
  1607. bitplane3_hi:    dc.w    0
  1608.         dc.w    $ee
  1609. bitplane3_lo:    dc.w    0,$f0        
  1610. bitplane4_hi:    dc.w    0
  1611.         dc.w    $f2
  1612. bitplane4_lo:    dc.w    0
  1613.  
  1614.         dc.w    $6001,$ff00,$100,$000
  1615.         dc.w    $6401,$ff00
  1616.  
  1617.         dc.w    $0e0
  1618. bplane0_hi:    dc.w    0
  1619.         dc.w    $e2
  1620. bplane0_lo:    dc.w    0,$e4
  1621. bplane1_hi:    dc.w    0
  1622.         dc.w    $e6
  1623. bplane1_lo:    dc.w    0,$e8
  1624. bplane2_hi:    dc.w    0
  1625.         dc.w    $ea
  1626. bplane2_lo:    dc.w    0,$ec    
  1627. bplane3_hi:    dc.w    0
  1628.         dc.w    $ee
  1629. bplane3_lo:    dc.w    0,$f0        
  1630. bplane4_hi:    dc.w    0
  1631.         dc.w    $f2
  1632. bplane4_lo:    dc.w    0
  1633.     
  1634.         dc.w    $100,$5200
  1635.     
  1636. cmap2:        dc.w    $180,0
  1637.         dc.w    $182,0    
  1638.         dc.w    $184,0    
  1639.         dc.w    $186,0    
  1640.         dc.w    $188,0    
  1641.         dc.w    $18a,0    
  1642.         dc.w    $18c,0    
  1643.         dc.w    $18e,0    
  1644.         dc.w    $190,0
  1645.         dc.w    $192,0    
  1646.         dc.w    $194,0    
  1647.         dc.w    $196,0    
  1648.         dc.w    $198,0    
  1649.         dc.w    $19a,0    
  1650.         dc.w    $19c,0    
  1651.         dc.w    $19e,0    
  1652.         dc.w    $1a0,0
  1653.         dc.w    $1a2,0    
  1654.         dc.w    $1a4,0    
  1655.         dc.w    $1a6,0    
  1656.         dc.w    $1a8,0    
  1657.         dc.w    $1aa,0    
  1658.         dc.w    $1ac,0    
  1659.         dc.w    $1ae,0    
  1660.         dc.w    $1b0,0
  1661.         dc.w    $1b2,0    
  1662.         dc.w    $1b4,0    
  1663.         dc.w    $1b6,0    
  1664.         dc.w    $1b8,0    
  1665.         dc.w    $1ba,0    
  1666.         dc.w    $1bc,0    
  1667.         dc.w    $1be,0    
  1668.  
  1669.         dc.w    $c901,$ff00,$180,$000
  1670.         
  1671.         dc.w    $100,$c200    ; 5 bp - lores
  1672.  
  1673.         dc.w    $102,14*16+14    ; hsr
  1674.         
  1675.         dc.w    $108,0        ; bp modulo - odd
  1676.         dc.w    $10a,0        ; bp modulo - even
  1677.  
  1678.         dc.w    $0e0
  1679. mplane0_hi:    dc.w    0
  1680.         dc.w    $e2
  1681. mplane0_lo:    dc.w    0,$e4
  1682. mplane1_hi:    dc.w    0
  1683.         dc.w    $e6
  1684. mplane1_lo:    dc.w    0,$e8
  1685. mplane2_hi:    dc.w    0
  1686.         dc.w    $ea
  1687. mplane2_lo:    dc.w    0,$ec    
  1688. mplane3_hi:    dc.w    0
  1689.         dc.w    $ee
  1690. mplane3_lo:    dc.w    0,$f0        
  1691. mplane4_hi:    dc.w    0
  1692.         dc.w    $f2
  1693. mplane4_lo:    dc.w    0
  1694.     
  1695.         dc.w    $19a,0
  1696.     
  1697. cmap3:        dc.w    $180,0
  1698.         dc.w    $182,0    
  1699.         dc.w    $184,0    
  1700.         dc.w    $186,0    
  1701.         dc.w    $188,0    
  1702.         dc.w    $18a,0    
  1703.         dc.w    $18c,0    
  1704.         dc.w    $18e,0    
  1705.         dc.w    $190,0
  1706.         dc.w    $192,0    
  1707.         dc.w    $194,0    
  1708.         dc.w    $196,0    
  1709.         dc.w    $198,0    
  1710.         dc.w    $1fe,0    
  1711.         dc.w    $19c,0    
  1712.         dc.w    $19e,0    
  1713.         dc.w    $1a0,0
  1714.         dc.w    $1a2,0    
  1715.         dc.w    $1a4,0    
  1716.         dc.w    $1a6,0    
  1717.         dc.w    $1a8,0    
  1718.         dc.w    $1aa,0    
  1719.         dc.w    $1ac,0    
  1720.         dc.w    $1ae,0    
  1721.         dc.w    $1b0,$fff
  1722.         dc.w    $1b2,$fff    
  1723.         dc.w    $1b4,$fff    
  1724.         dc.w    $1b6,$fff    
  1725.         dc.w    $1b8,$fff    
  1726.         dc.w    $1ba,$fff    
  1727.         dc.w    $1bc,$fff    
  1728.         dc.w    $1be,$fff    
  1729.  
  1730.         dc.w    $196,$fff
  1731.  
  1732.         dc.w    $d701,$ff00,$186,$666,$196,$999
  1733.         dc.w    $d901,$ff00,$186,$777,$196,$bbb
  1734.         dc.w    $db01,$ff00,$186,$888,$196,$fff
  1735.         
  1736.  
  1737.         dc.w    $ffe1,$fffe    ; wait for end of ntsc screen        
  1738.         
  1739.         dc.w    $2201,$ff00,$186,$888,$196,$fff
  1740.         dc.w    $2401,$ff00,$186,$777,$196,$bbb
  1741.         dc.w    $2601,$ff00,$186,$666,$196,$999
  1742.         dc.w    $2701,$ff00,$190,0
  1743.         
  1744.         dc.w    $3001,$ff00    ; wait for end of pal screen
  1745.         dc.w    $9c,$8010    ; irq set bits - restart vblank
  1746.         dc.w    $ffff,$fffe    ; end of copper list
  1747.     
  1748. glib:        dc.b    "graphics.library",0
  1749.         even
  1750. dlib:        dc.b    "dos.library",0
  1751.  
  1752. tall        equ    10
  1753. wide:        equ    44
  1754. wide2:        equ    94
  1755.  
  1756. scrsize:    equ    40*100*5*2
  1757.  
  1758. pagenum:    dc.l    0
  1759.  
  1760. mid:        dc.w    0
  1761. midadd:        dc.l    0
  1762. old_copper:    dc.l    0
  1763. graphics:    dc.l    0
  1764. dos:        dc.l    0
  1765.  
  1766. newscr:        dc.l    0
  1767. flag:        dc.l    0
  1768. line:        dc.l    0
  1769. scroll:        dc.l    0
  1770. delay:        dc.l    0
  1771. delay2:        dc.l    0
  1772. delay3:        dc.l    0
  1773. x1:        dc.l    wide-4
  1774. x2:        dc.l    0
  1775. page:        dc.l    0
  1776. waiting:    dc.l    0
  1777. height:        dc.l    0
  1778.  
  1779. equ1_ptr:    dc.l    0
  1780. equ2_ptr:    dc.l    0
  1781. equ3_ptr:    dc.l    0
  1782. equ4_ptr:    dc.l    0
  1783.  
  1784. scr1:        dc.l    0
  1785. scr2:        dc.l    0
  1786.  
  1787. blank:        dc.l    frame+64
  1788.  
  1789. logo:        incbin    "music3.logo"
  1790. frame:        incbin    "music3.frame"
  1791. scrollpic:    incbin    "music3.scroll"
  1792.         dcb.b    80*10,0
  1793.                 
  1794. man1:        incbin    "music3.man1"
  1795.         incbin    "music3.man2"
  1796.         incbin    "music3.man3"
  1797.         incbin    "music3.man4"
  1798.         incbin    "music3.man3"
  1799.         incbin    "music3.man2"
  1800.  
  1801. mannum:        dc.l    0
  1802. scrup:        dc.l    0
  1803.  
  1804. calc:        dc.l    -1
  1805. finished:    dc.l    0
  1806. finding:    dc.l    0
  1807.  
  1808. screen2:    dc.l    0
  1809.  
  1810. equals:        dcb.b    13,0
  1811. fades:        dcb.b    13,0
  1812.  
  1813. maxequal:    dc.l    0
  1814. minequal:    dc.l    0
  1815. divequal:    equ    $100
  1816.  
  1817. dff0a0:        dc.l    0
  1818. dff0b0:        dc.l    0
  1819. dff0c0:        dc.l    0
  1820. dff0d0:        dc.l    0
  1821. dff000:        dc.l    0
  1822.  
  1823. waste:        dcb.b    100,0
  1824.  
  1825. unpackcolour    EQU    $dff184
  1826.  
  1827.  
  1828. scrolltext_ptr:    dc.l    scrolltext
  1829.  
  1830. scrolltext:    
  1831.         dc.b    "WELCOME TO LSD SUPREME MUSIC 2",0
  1832.         dc.b    " ",0
  1833.         dc.b    " TEN UNRELEASED TRACKS BY LSD ",0
  1834.         dc.b    " ",0
  1835.         dc.b    " ",0
  1836.         dc.b    "      CODING BY SHAGRATT.     ",0
  1837.         dc.b    "     GRAPHICS BY PARASITE     ",0
  1838.         dc.b    " AND VARIOUS SOFTWARE HOUSES. ",0
  1839.         dc.b    " THIS FONT BY SHARE AND ENJOY ",0
  1840.         dc.b    " ",0
  1841.         dc.b    " ",0
  1842.         dc.b    " THIS WAS ORIGINALLY GOING TO ",0
  1843.         dc.b    "  BE RELEASED AT THE ANARCHY  ",0
  1844.         dc.b    "  WINTER CONFERANCE 23/02/91  ",0
  1845.         dc.b    " HOWEVER DUE TO OVER 10 POWER ",0
  1846.         dc.b    " FAILURES, CAUSED BY RUNNING  ",0
  1847.         dc.b    "    MORE THAN 35 MACHINES,    ",0
  1848.         dc.b    "   MONITORS ETC. FROM ONLY    ",0
  1849.         dc.b    "  THREE SOCKETS IT`S RELEASE  ",0
  1850.         dc.b    "  WAS DELAYED UNTIL 27/02/91. ",0
  1851.         dc.b    " ",0
  1852.         dc.b    " LSD SUPREME MUSIC 3 IS ALSO  ",0 
  1853.         dc.b    "  OUT NOW (RELEASED AT THE    ",0
  1854.         dc.b    "         CONFERANCE).         ",0
  1855.         dc.b    " ",0
  1856.         dc.b    " ",0
  1857.         dc.b    "   NOW FOR SOME SONG INFO...  ",0
  1858.         dc.b    " ",0
  1859.         dc.b    "   F1 - ADAMSKI MIX BY MUB.   ",0
  1860.         dc.b    "   A REMIX OF THE TRACK THAT  ",0
  1861.         dc.b    " APPEARED ON LSD SUPREME MUSIC",0
  1862.         dc.b    "          DISK ONE.           ",0
  1863.         dc.b    " ",0
  1864.         dc.b    "   F2 - FROM OUT OF NOWHERE   ",0
  1865.         dc.b    "            BY DIGGER.        ",0
  1866.         dc.b    " A CONVERSION OF THE CLASSIC  ",0
  1867.         dc.b    "    SONG BY FAITH NO MORE.    ",0
  1868.         dc.b    " ",0 
  1869.         dc.b    "  F3 - HEARTBREAK BY DIGGER.  ",0
  1870.         dc.b    " A CONVERSION, ORIGINALLY BY  ",0
  1871.         dc.b    "         DEF LEPPARD.         ",0
  1872.         dc.b    " ",0
  1873.         dc.b    "    F4 - ISRAEL BY DIGGER.    ",0
  1874.         dc.b    "A CONVERSION ORIGANALLY A HIT ",0
  1875.         dc.b    "FOR SIOUXSIE AND THE BANSHEES ",0
  1876.         dc.b    "            IN 1980.          ",0
  1877.         dc.b    " ",0
  1878.         dc.b    "  F5 - ITCHY SCRATCH BY MUB.  ",0 
  1879.         dc.b    " AN ORIGINAL MIX SAMPLED FROM ",0
  1880.         dc.b    "        VARIOUS CD`s.         ",0
  1881.         dc.b    " ",0
  1882.         dc.b    "F6 - MIDNIGHT DREAMS BY SPIRIT",0
  1883.         dc.b    "   AN ORIGINAL COMPOSITION.   ",0
  1884.         dc.b    " ",0
  1885.         dc.b    "   F7 - PHANTOM OF THE OPERA  ",0
  1886.         dc.b    "           BY DIGGER.         ",0
  1887.         dc.b    "  A CONVERSION OF A CLASSIC   ",0
  1888.         dc.b    "   TRACK FROM IRON MAIDEN,    ",0
  1889.         dc.b    "  THIS IS OVER EIGHT MINUETS  ",0
  1890.         dc.b    "    LONG WITH 105 PATTERNS.   ",0
  1891.         dc.b    " ",0
  1892.         dc.b    "F8 - SPEED DREAMER BY SPIRIT. ",0
  1893.         dc.b    "   AN ORIGINAL COMPOSITION.   ",0
  1894.         dc.b    " ",0
  1895.         dc.b    "  F9 - SWITCH 625 BY DIGGER.  ",0
  1896.         dc.b    " A CONVERSION, ORIGINALLY BY  ",0
  1897.         dc.b    "DEF LEPPARD, THIS SONG FOLLOWS",0
  1898.          dc.b    "   HEARTBREAK ON THE ALBUM.   ",0
  1899.          dc.b    " ",0
  1900.         dc.b    "    F10 - WALKING IN SPACE    ",0 
  1901.         dc.b    "           BY SPIRIT.         ",0
  1902.         dc.b    "    A ORIGINAL COMPOSITION    ",0
  1903.         dc.b    " USING SAMPLES FROM THE GAME  ",0
  1904.         dc.b    "          `THE KULT'.         ",0
  1905.         dc.b    " ",0
  1906.         dc.b    " THE LSD MEMBERS AT THE PARTY ",0
  1907.         dc.b    "            WHERE:            ",0
  1908.         dc.b    " ",0
  1909.         dc.b    "        SHAGRATT - CODER      ",0
  1910.         dc.b    "      VOODOO CHILD - CODER    ",0
  1911.         dc.b    "      MONTY PYTHON - CODER    ",0
  1912.         dc.b    "        MAXIMAN - CODER       ",0
  1913.         dc.b    "        MUB - MUSICIAN        ",0
  1914.         dc.b    "PARASITE - SWAPPER/MANAGEMENT ",0
  1915.         dc.b    "  SIDEWINDER - SWAPPER/DOCS   ",0
  1916.         dc.b    " ",0
  1917.         dc.b    "  AND WE ALSO HAD TWO GUESTS: ",0
  1918.         dc.b    " ",0
  1919.         dc.b    "        SPIRIT AND GARY       ",0
  1920.         dc.b    " ",0
  1921.         dc.b    "  AND THE GUYS WHO COULDN'T   ",0
  1922.         dc.b    "       MAKE IT WHERE:         ",0
  1923.         dc.b    " ",0
  1924.         dc.b    "     REBEL - MANAGEMENT       ",0
  1925.         dc.b    "    PAW - SWAPPER/VIDEOS      ",0
  1926.         dc.b    "      DIGGER - MUSICIAN       ",0
  1927.         dc.b    "        MARL - CODER          ",0 
  1928.         dc.b    "      OSSWALD - CODER         ",0
  1929.         dc.b    " ",0
  1930.         dc.b    " ",0
  1931.         dc.b    "  PARASITE AND SHAGRATT SEND  ",0
  1932.         dc.b    " GREETINGS TO THE FOLLING COOL",0
  1933.         dc.b    "       GUYS AND GROUPS:       ",0
  1934.         dc.b    " ",0
  1935.         dc.b    " POD & KID VIDEO OF SLIPSTREAM",0
  1936.         dc.b    "   TRIPWIRE & OPUS OF EQUINOX ",0
  1937.         dc.b    "     COSY & MAGNETIC FIELDS   ",0
  1938.         dc.b    "         MOLE & ANARCHY       ",0
  1939.         dc.b    "LIGHTFOOT & THE MIGHTY DRUIDS ",0
  1940.         dc.b    "     TURMOIL & SCOOPEX UK     ",0
  1941.         dc.b    "         TAURUS & XTC         ",0
  1942.         dc.b    "        INDEX & RELAY         ",0
  1943.         dc.b    "    AWOL & PENDLE EUROPA      ",0
  1944.         dc.b    "    POLTERGEIST & CYRUS",0
  1945.         dc.b    "      NASTY BOY, GARY",0
  1946.         dc.b    "       SPIRIT, CYLON",0
  1947.         dc.b    " ",0
  1948.         dc.b    "  ...AND ALL OUR FRIENDS AND  ",0
  1949.         dc.b    "      CONTACTS EVERYWHERE.    ",0
  1950.         dc.b    " ",0
  1951.         dc.b    " ",0
  1952.         dc.b    "LOOK OUT FOR THE FOLLOWING LSD",0
  1953.         dc.b    "     RELEASES, OUT NOW:",0
  1954.         dc.b    " ",0
  1955.         dc.b    "      FUNKY PIZZA INTRO",0
  1956.         dc.b    "  TERRY FUCKWITT/FAST INTRO",0
  1957.         dc.b    "        JOKE INTRO 2",0
  1958.         dc.b    "     LSD SUPREME MUSIC 3",0
  1959.         dc.b    " ",0
  1960.         dc.b    " ",0
  1961.         dc.b    "   EVERYONE HERE IS FEELING   ",0
  1962.         dc.b    "SORRY FOR COLIN IN BIRMINGHAM ",0
  1963.         dc.b    "   FOR CATCHING MAD LAMERS    ",0
  1964.         dc.b    " DISEASE AND NOT SENDING GARY ",0
  1965.         dc.b    "THE DISKS. DON`T WORK TO HARD!",0
  1966.         dc.b    " ",0
  1967.         dc.b    " ",0
  1968.         dc.b    "THE CHARACTERS YOU CAN SEE",0
  1969.         dc.b    "ABOVE ARE (FROM LEFT TO RIGHT)",0
  1970.         dc.b    " ",0
  1971.         dc.b    "     RUFF - RUFF & REDDY      ",0
  1972.         dc.b    " TERRY - TERRYS BIG ADVENTURE ",0
  1973.         dc.b    "   DIZZY - CODEMASTER GAMES   ",0
  1974.         dc.b    "  WONDERBOY - SUPER WONDERBOY ",0
  1975.         dc.b    "      BOMBJACK - BOMBJACK     ",0
  1976.         dc.b    "  FLIPPIT - FLIPPIT & MAGNOSE ",0
  1977.         dc.b    "  EDD THE DUCK - EDD THE DUCK ",0
  1978.         dc.b    "      BUB - BUBBLE BOBBLE     ",0
  1979.         dc.b    "    KID GLOVES - KID GLOVES   ",0
  1980.         dc.b    "     BOY - RAINBOW ISLANDS    ",0
  1981.         dc.b    "A GIANA SISTER - GIANA SISTERS",0
  1982.         dc.b    "     HERBIE STONE - DUGGER    ",0
  1983.         dc.b    "   SWICHBLADE - SWITCHBLADE   ",0
  1984.         dc.b    " ",0
  1985.         dc.b    " ",0
  1986.         dc.b    " ",0
  1987.         dc.b    "IF YOU WANT TO CONTACT LSD FOR",0
  1988.         dc.b    "    SWAPPING ETC. WRITE TO:   ",0
  1989.         dc.b    " ",0
  1990.         dc.b    "PARASITE, 18 BROCKLESBY CLOSE,",0
  1991.         dc.b    "GAINSBOROUGH LINCS. DN21 1TT. ",0
  1992.         dc.b    "     FOR A 100% REPLY!        ",0
  1993.         dc.b    " ",0
  1994.         dc.b    " ",0
  1995.         dc.b    " ",0
  1996.         dc.b    " ",0
  1997.         dc.b    " ",0
  1998.         dc.b    " ",0
  1999.         dc.b    " ",0
  2000.         dc.b    " ON NO, ITS ALL GOING TO WRAP!",0
  2001.         dc.b    " ",0
  2002.         dc.b    " ",0
  2003.         dc.b    " ",0
  2004.         dc.b    " ",0
  2005.         dc.b    0,0
  2006.         even
  2007.         
  2008. use_equals:    dc.l    0        
  2009. equalsource:    dc.l    $ffffffff
  2010.  
  2011. font:        incbin    "sae.wrd"
  2012.  
  2013. cheat:
  2014.         dc.l    0
  2015.         dc.l    0
  2016.         dc.l    $40
  2017.         dc.l    $15
  2018.         dc.l    0
  2019.         dc.l    0
  2020.         dc.l    $10
  2021.         dc.l    0
  2022.         dc.l    0
  2023.         dc.l    0
  2024.         
  2025.  
  2026.  
  2027. mc1a:        incbin    "mchar1a.bin"
  2028.         incbin    "mchar1b.bin"
  2029.         incbin    "mchar2a.bin"
  2030.         incbin    "mchar2b.bin"
  2031.         incbin    "mchar3a.bin"
  2032.         incbin    "mchar3b.bin"
  2033.         incbin    "mchar4a.bin"
  2034.         incbin    "mchar4b.bin"
  2035.         incbin    "mchar5a.bin"
  2036.         incbin    "mchar5b.bin"
  2037.         incbin    "mchar6a.bin"
  2038.         incbin    "mchar6b.bin"
  2039.         incbin    "mchar7a.bin"
  2040.         incbin    "mchar7b.bin"
  2041.         incbin    "mchar8a.bin"
  2042.         incbin    "mchar8b.bin"
  2043.         incbin    "mchar9a.bin"
  2044.         incbin    "mchar9b.bin"
  2045.         incbin    "mchar10a.bin"
  2046.         incbin    "mchar10b.bin"
  2047.         incbin    "mchar11a.bin"
  2048.         incbin    "mchar11b.bin"
  2049.         incbin    "mchar12a.bin"
  2050.         incbin    "mchar12b.bin"
  2051.         incbin    "mchar13a.bin"
  2052.         incbin    "mchar13b.bin"
  2053. mt_data:
  2054.         dc.l    $19cce7a2
  2055.         dcb.b    250*1000,0
  2056.     End
  2057.